home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / c64-preservation-project / apps / koalapad_programmers_toolkit_s1[koala_technologies_1984].nbz / basics (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  23.1 KB  |  705 lines

  1. 10 REM             BASICS
  2. 11 :
  3. 900 POKE 53265,PEEK(53265)AND239:REM TURN OFF DISPLAY SCREEN
  4. 910 POKE56578,PEEK(56578)OR3:REM SWITCH CIA
  5. 920 POKE56576,(PEEK(56576)AND252)OR3:REM SET FOR BANK 0
  6. 930 POKE53272,(PEEK(53272)AND15)OR16:REM SET SCREEN LOCATION
  7. 940 POKE53272,(PEEK(53272)AND240)OR4:REM SET BIT MAP LOCATION
  8. 950 POKE 53265,PEEK(53265)AND223:REM TURN OFF MULTICOLOR
  9. 960 POKE53270,PEEK(53270)AND239:REM TURN OFF BIT MAP
  10. 970 POKE 49191,3:POKE49194,4:POKE49195,16
  11. 1000 :
  12. 1010 REM                 KOALAPAD FUNDAMENTALS
  13. 1020 :
  14. 1030 CLR
  15. 1040 REM
  16. 1050 GOSUB 21200:REM DEFINE VARIABLE NAMES
  17. 1055 POKE S1,6:POKE S2,6:POKEM1,255:POKEM2,255:REM SET TABLET VALUES TO DEFAULT
  18. 1060 POKE LO,1:POKE LE,1:POKE SN,0
  19. 1070 POKE CB,13:POKE CS,12
  20. 1080 PRINTCHR$(144)
  21. 1090 PRINTCHR$(147):PRINT"               BASICS ":PRINT:PRINT
  22. 1100 POKE 53265,PEEK(53265)OR16
  23. 1110 PRINT"           TABRAW":PRINT
  24. 1120 PRINT"           DEBOUNCE":PRINT
  25. 1130 PRINT"           FILTER":PRINT
  26. 1140 PRINT"           PADLOCK":PRINT
  27. 1150 PRINT"           SMOOTH":PRINT
  28. 1160 PRINT"           SCALE":PRINT
  29. 1170 PRINT"           MAIN MENU":PRINT
  30. 1180 PRINT:PRINT:PRINT:PRINT:PRINT"  PRESS LEFT BUTTON TO MAKE SELECTION"
  31. 1190 REM
  32. 1195 POKE T3,0:POKET3+1,0
  33. 1200 SYS TE
  34. 1210 POKE T3,1
  35. 1220 POKE S1,3:POKES2,3:REM SETS TABLET MINIMUMS
  36. 1230 POKE H1,0:POKEH2,0:POKEH3,0:POKEH4,0
  37. 1240 POKE XS,9:POKE XF,9:POKE YS,4:POKE YF,16
  38. 1250 SYS TE
  39. 1260 Y=PEEK(YN)
  40. 1270 N=(Y-2)/2:IFN<>INT(N)THENN=0
  41. 1280 IF N<1 THEN 1250
  42. 1290 IF N>7 THEN 1250
  43. 1295 IF PEEK(LP)=1 THEN 1320
  44. 1300 GOSUB 21900:ON SW GOTO 1320,1310,1320,1060,1060,9000
  45. 1310 GOTO 1250
  46. 1320 ON N GOTO  2000,3000,4000,6000,7000,8000,9000
  47. 1330 :
  48. 2000 REM*******************************
  49. 2005 REM*       READ RAW DATA          *
  50. 2010 REM********************************
  51. 2015 REM
  52. 2020 :
  53. 2025 REM*  THIS SECTION READS IN RAW DATA FROM THE TABLET.  X,Y, LEFT, AND    *
  54. 2030 REM*  RIGHT BUTTONS ARE READ BY PEEKING THEIR MEMORY LOCATIONS.  X AND   *
  55. 2035 REM*  Y ARE VALUES BETWEEN 0-255. BUTTON VALUES ARE 1=ON, 0=OFF.         *
  56. 2040 :
  57. 2045 REM
  58. 2050 REM
  59. 2055 :
  60. 2060 REM* MAIN BODY OF PROGRAM                                                *
  61. 2065 :
  62. 2070 GOSUB 2135:REM INITIALIZE VARIABLE LOCATIONS    *
  63. 2075 GOSUB 2420:REM PRINT TEXT                       *
  64. 2080 ON SW GOTO 2085,1000,2085,1000,1000,9000
  65. 2085 GOSUB 2200:REM PRINT TITLES ON SCREEN           *
  66. 2090 GOSUB 2285:REM GET TABLET DATA AND DISPLAY IT   *
  67. 2095 ON SW GOTO 2100,2100,2100,2070,1000,9000
  68. 2100 GOTO 1060
  69. 2105 :
  70. 2110 REM
  71. 2115 REM
  72. 2120 :
  73. 2125 REM THIS SECTIONS SETS ALL CONSTANTS, VARIABLES, AND LOCATIONS.          *
  74. 2130 :
  75. 2135 TA=49328                           :REM START OF TABLET READ ROUTINE     *
  76. 2140 RX=49152                           :REM LOCATION OF RAW X                *
  77. 2145 RY=49154                           :REM LOCATION OF RAW Y                *
  78. 2150 B1=49156                           :REM LOCATION OF B1 (LEFT BUTTON)     *
  79. 2155 B2=49157                           :REM LOCATION OF B2 (RIGHT BUTTON)    *
  80. 2160 N=0:QQ$="A"                        :REM N COUNTS AMOUNT B2 HELD DOWN     *
  81. 2165 RETURN                             :REM                                  *
  82. 2170 :
  83. 2175 REM
  84. 2180 REM
  85. 2185 :
  86. 2190 REM DISPLAY TITLES AND HEADINGS ON THE SCREEN                            *
  87. 2195 :
  88. 2200 POKE CS,0:PRINT CHR$(158)       :REM SET COLORS                       *
  89. 2205 PRINT CHR$(147)                    :REM CLEAR SCREEN                     *
  90. 2210 PRINT:PRINT"             READ RAW DATA"   :REM PRINT TITLE               *
  91. 2215 PRINT:PRINT:PRINT                  :REM SKIP 3 LINES                     *
  92. 2220 PRINT"       X VALUE            Y VALUE"   :REM PRINT XVALUE, Y VALUE    *
  93. 2225 PRINT:PRINT:PRINT:PRINT:PRINT      :REM SKIP 5 LINES                     *
  94. 2230 PRINT"    LEFT BUTTON         RIGHT BUTTON" :REM BUTTON TITLES           *
  95. 2235 PRINT:PRINT"       -B1-                 -B2-" :REM                       *
  96. 2240 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT  :REM                          *
  97. 2245 PRINT"TO EXIT, HOLD DOWN RIGHT BUTTON (B2)" :REM                         *
  98. 2250 RETURN                             :REM                                  *
  99. 2255 :
  100. 2260 REM
  101. 2265 REM
  102. 2270 :
  103. 2275 REM* GET RAW DATA FROM TABLET AND DISPLAY IT ON THE SCREEN               *
  104. 2280 :
  105. 2285 SYS TA                             :REM CALL READ RAW DATA ROUTINE       *
  106. 2290 X=PEEK(RX):Y=PEEK(RY)              :REM BET X,Y VALUES                   *
  107. 2295 V1=PEEK(B1):V2=PEEK(B2)            :REM GET BUTTON VALUES                *
  108. 2300 VT=7:GOSUB 2395:REM GO TO 7TH ROW                    *
  109. 2305 PRINT"                                   ":REM ERASE PREVIOUS X,Y        *
  110. 2310 VT=7:GOSUB 2395:REM                                  *
  111. 2315 PRINT"        ";X                  :REM PRINT X                          *
  112. 2320 VT=7:GOSUB 2395:REM                                  *
  113. 2325 PRINT,,"       ";Y                 :REM PRINT Y                          *
  114. 2330 VT=15:GOSUB 2395:REM                                  *
  115. 2335 PRINT"       ";V1,"        ";V2    :REM PRINT BUTTON VALUES              *
  116. 2340 GOSUB 21900
  117. 2345 ON SW GOTO 2350,2350,2410,2410,2410,2410
  118. 2350 IF N=5  THEN RETURN                :REM RETURN TO MAIN PROGRAM           *
  119. 2355 IF V2=1 THEN N=N+1:(null) TO 2285:REM CHECK IF B2 IS HELD DOWN         *
  120. 2360 N=0:(null) TO 2285:REM GET NEXT TABLET VALUES           *
  121. 2365 :
  122. 2370 REM
  123. 2375 REM
  124. 2380 :
  125. 2385 REM* VTAB DOES VERTICAL TABBING                                          *
  126. 2390 :
  127. 2395 PRINT CHR$(19)                     :REM SENDS CURSOR TO UPPER LEFT       *
  128. 2400 POKE 214,VT                        :REM SETS CURSOR LINE NUMBER          *
  129. 2405 PRINT                              :REM ACTIVATES CURSOR POSITION        *
  130. 2410 RETURN                             :REM                                  *
  131. 2415 :
  132. 2420 REM
  133. 2425 REM*************TEXT SECTION**********************************************
  134. 2430 REM
  135. 2435 POKE CB,0:POKE CS,0:PRINT"[158]"
  136. 2440 PRINTCHR$(147):PRINT"             READ RAW DATA":PRINT:PRINT
  137. 2445 PRINT"THIS MODULE READS 'RAW' DATA FROM THE"
  138. 2450 PRINT"TABLET: HORIZONTAL POSITION (X),"
  139. 2455 PRINT"VERTICAL POSITION (Y), AND THE STATE OF"
  140. 2460 PRINT"BOTH BUTTONS.":PRINT
  141. 2465 PRINT"SLIDE YOUR FINGER AROUND THE TABLET,"
  142. 2470 PRINT"AND PRESS BUTTONS TO SEE THE VALUES"
  143. 2475 PRINT"CHANGE.":PRINT
  144. 2480 PRINT"YOU WILL SELDOM NEED TO CALL THIS"
  145. 2485 PRINT"MODULE DIRECTLY. NORMALLY YOU SHOULD "
  146. 2490 PRINT"GET DATA THROUGH 'SMOOTH'.
  147. 2495 [153]:[153]:[153]:[153]:[153]
  148. 2500 [153]"PRESS LEFT BUTTON TO CONTINUE"
  149. 2505 [141] 21900:[139]SW[178]0 [167] 2505
  150. 2510 [142]
  151. 2515 :
  152. 3000 [143] *************************************
  153. 3010 [143] *  KOALAPAD SWITCH DEBOUNCE (DBNC)  *
  154. 3020 [143] *************************************
  155. 3030 [143]
  156. 3040 :
  157. 3050 [143] *  THIS PROGRAM DISPLAYS THE CONDITIONS OF THE KOALAPAD BUTTONS WITH *
  158. 3060 [143] * AND WITHOUT THE DEBOUNCE ROUTINE. THE RAW BUTTONS ARE AT 49156     *
  159. 3070 [143] * AND 49157.  THE BUTTON PRESSED STATUS IS IN 49161 AND 49162. THE   *
  160. 3080 [143] * BUTTON RELEASED STATUS IS IN 49159 AND 49160.  YOU MUST READ THE   *
  161. 3090 [143] * PAD BEFORE USING THIS ROUTINE.                                     *
  162. 3100 :
  163. 3110 [143]
  164. 3120 TA[178]49328                           :[143] START OF KOALAPAD READ ROUTINE
  165. 3130 DE[178]49331                           :[143] START OF DEBOUNCE ROUTINE
  166. 3140 B1[178]49156:B2[178]49157                  :[143] LOCATIONS OF RAW BUTTON DATA
  167. 3150 LP[178]49161:RP[178]49162:                 :[143] LOCATION OF PRESSED BUTTONS
  168. 3160 LD[178]49159:RD[178]49160                  :[143] LOCATIONS OF DEBOUNCED BUTTONS
  169. 3170 [143]
  170. 3180 :
  171. 3190 [143] START OF DEBOUNCE PROGRAM - SET UP SCREEN
  172. 3200 [143]
  173. 3210 [153][199](147)
  174. 3220 [141] 3660:[143] TEXT
  175. 3230 [145]SW [137] 3240,1000,3240,1000,1000,9000
  176. 3240 [151] CS,3:[153][199](144):[151] CB,11
  177. 3250 [153][199](147)                         :[143] CLEAR SCREEN
  178. 3260 [153]:[153]"        KOALAPAD SWITCH DEBOUNCE"
  179. 3270 [153]:[153]
  180. 3280 [153]"          LEFT           RIGHT"
  181. 3290 [153]"         BUTTON          BUTTON "
  182. 3300 [153]:[153]
  183. 3310 [153]"         NORMAL          NORMAL"
  184. 3320 [153]"         (49156)         (49157)"
  185. 3330 [153]:[153]:[153]"         PRESSED         PRESSED"
  186. 3340 [153]"         (49161)         (49162)"
  187. 3350 [153]:[153]
  188. 3360 [153]"         RELEASED        RELEASED "
  189. 3370 [153]"         (49159)         (49160)"
  190. 3380 [153]:[153]:[153]:[153]
  191. 3390 [153]"TO EXIT, PRESS AND HOLDWAIT RIGHT BUTTON"
  192. 3400 [143]
  193. 3410 :
  194. 3420 [143] READ SWITCHES AND DISPLAY BUTTONS
  195. 3430 [143]
  196. 3440 [158] TA                             :[143] READ TABLET
  197. 3450 [158] DE                             :[143] CALL DEBOUNCE ROUTINE
  198. 3460 V1[178][194](B1):V2[178][194](B2)            :[143] READ NORMAL BUTTONS
  199. 3470 P1[178][194](LP):P2[178][194](RP)            :[143] READ PRESSED BUTTONS
  200. 3480 D1[178][194](LD):D2[178][194](RD)            :[143] READ DEBOUNCED BUTTONS
  201. 3490 [153][199](19):[151] 214,10:[153]    :[143] ADVANCE CURSOR TO LINE 10
  202. 3500 [153]," ";V1,"       ";V2          :[143] PRINT NORMAL BUTTONS
  203. 3510 [153][199](19):[151] 214,14:[153]    :[143] ADVANCE CURSOR TO LINE 14
  204. 3520 [153]," ";P1,"       ";P2          :[143] PRINT NORMAL BUTTONS
  205. 3530 [153][199](19):[151]214,18:[153]     :[143] ADVANCE CURSOR TO LINE 18
  206. 3540 [153]"                              CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  207. 3550 [153]," ";D1,"       ";D2          :[143] PRINT DEBOUNCED VALUES
  208. 3560 [129] CV[178]1 [164]10
  209. 3570 [161] QQ$:[139] QQ$[179][177]"" [167] 3590
  210. 3580 [130] CV:[137] 3610
  211. 3590 SW[178][198](QQ$)[171]132:[139] SW[179]0 [167] SW[178]0
  212. 3600 [145] SW [137] 1000,3120,1000,9000
  213. 3610 [139] N[178]6  [167] [137] 1060:[143] N=NUMBER OF TIMES B2 HELD DOWN
  214. 3620 [139] V2[178]1 [167] N[178]N[170]1:[203] [164] 3440:[143] ADVANCE N IF V2 HELD DOWN
  215. 3630 N[178]0:[203] [164] 3440:[143] SET N=0 IF B2 RELEASED
  216. 3640 [128]
  217. 3650 :
  218. 3660 [153][199](147):[153]"          KOALAPAD DEBOUNCE":[153]:[153]
  219. 3670 [153]" DEBOUNCE READS IN THE SWITCHES"
  220. 3680 [153]"AND SEPARATES THEIR CONDITION INTO "
  221. 3690 [153]"THREE DISTINCT STATES. THE STATES ARE:":[153]
  222. 3700 [153]"   1) SWITCH JUST PRESSED."
  223. 3710 [153]"   2) SWITCH HELD DOWN."
  224. 3720 [153]"   3) SWITCH JUST RELEASED.":[153]
  225. 3730 [153]" THIS ALLOWS YOU TO TAKE DIFFERENT "
  226. 3740 [153]"ACTIONS ON DIFFERING SWITCH CONDITIONS.":[153]
  227. 3750 [153]" THESE THREE STATES ARE STORED FOR EACH"
  228. 3760 [153]"SWITCH, GIVING A TOTAL OF SIX DIFFERENT"
  229. 3770 [153]"LOCATIONS WHICH STORE SWITCH DATA.":[153]
  230. 3780 [153]" DEBOUNCE IS AUTOMATICALLY CALLED FROM"
  231. 3790 [153]"SMOOTH.":[153]:[153]
  232. 3800 [153]"PRESS LEFT BUTTON TO CONTINUE"
  233. 3810 [141] 21900:[139] SW[178]0 [167] 3810
  234. 3820 [153][199](147)
  235. 3830 [142]
  236. 3840 :
  237. 4000 [143]********************************
  238. 4010 [143]*           FILTER             *
  239. 4020 [143]********************************
  240. 4030 [143]
  241. 4040 :
  242. 4050 [143]* THE DELTA FILTER IS A VARIABLE SPEED FILTER ROUTINE. THE ROUTINE    *
  243. 4060 [143]* FILTERS OUT VALUES GREATER THEN THE PREVIOUS VELOCITY PLUS DELTA.   *
  244. 4070 [143]* YOU CAN SET DELTA TO ANY VALUE FROM 0-255 BY POKING 49173.          *
  245. 4080 :
  246. 4090 [143]
  247. 4100 [151] CS,11:[153] [199](159)       :[143] SET COLORS
  248. 4110 FI[178]49334:DE[178]49331                  :[143] START OF DELTA FILTER ROUTINE
  249. 4120 [141] 4570:[143] GET TEXT
  250. 4130 [145] SW [137] 4140,1000,4140,1000,1000,9000
  251. 4140 [141] 4780:[143] GET FILTER LIMIT
  252. 4150 [145] SW [137] 4160,4120,4160,4120,1000,9000
  253. 4160 FX[178]49168:FY[178]49169                  :[143] FILTERED X, FILTERED Y
  254. 4170 UX[178]49172:UY[178]49173                  :[143] UNFILTERED X, UNFILTERED Y
  255. 4180 [143]
  256. 4190 [143] PRINT SCREEN
  257. 4200 [143]
  258. 4210 [153] [199](147)
  259. 4220 [153]:[153]"          FILTER LIMIT = ";FV:[143] PRINT FILTER VALUE
  260. 4230 [153]:[153]:[153]
  261. 4240 [153]"    FILTERED X           FILTERED Y"
  262. 4250 [153]:[153]:[153]:[153]:[153]
  263. 4260 [151] 214,11:[153]:[153]"    PREVIOUS  X          PREVIOUS  Y"
  264. 4270 [153]:[153]
  265. 4280 [153]:[153]:[153]:[153]:[153]:[153]:[153]
  266. 4290 [153]"TO EXIT, PRESS DOWN LEFT BUTTON"
  267. 4300 [143]
  268. 4305 F6[178]0
  269. 4310 [158] FI:[158] DE             :[143] CALL DELTA FILTER ROUTINE & DEBOUNCE
  270. 4320 X[178][194](FX):Y[178][194](FY)              :[143] GET FX,FY VALUES
  271. 4330 [139] F6[178]0 [167] F6[178]1:[137] 4350
  272. 4340 [139](([194](UX)[179][177]GX)[176]([194](UY)[179][177]GY))[167] [137] 4490
  273. 4350 GX[178][194](UX):GY[178][194](UY)            :[143] GET BAD VALUES
  274. 4360 V1[178][194](B1):V2[178][194](B2)            :[143] GET BUTTON VALUES
  275. 4370 [153][199](19):[151] 214,7:[153]          :[143] GO TO 7TH ROW
  276. 4380 [153]"                                   ":[143] ERASE PREVIOUS X,Y
  277. 4390 [153] [199](19):[151] 214,7:[153]
  278. 4400 [153]"       ";X                  :[143] PRINT X
  279. 4410 [153][199](19):[151] 214,7:[153]
  280. 4420 [153],,"        ";Y                 :[143] PRINT Y
  281. 4430 [141] 21900
  282. 4440 [145] SW [137] 1060,4140,1060,4140,1000,9000
  283. 4450 [203] [164] 4310:[143] GET NEXT TABLET VALUES
  284. 4460 :
  285. 4470 [143] DISPLAY MESSAGE WHEN FILTER LIMIT IS EXCEEDED
  286. 4480 :
  287. 4490 [151] 214,11:[153]:[153]"    PREVIOUS  X          PREVIOUS  Y"
  288. 4500 [153][199](19):[151] 214,13:[153]
  289. 4510 [153]"       ";[194](UX),"        ";[194](UY):[143] PRINT UNFILTERED VALUES
  290. 4520 [153]:[153]:[153]"OOPS, THE VALUE EXCEEDED THE LIMIT!":[153]
  291. 4525 [153]:[153]:[153]
  292. 4530 [153]"PRESS THE LEFT BUTTON TO CONTINUE"
  293. 4540 [141] 21900:F6[178]0
  294. 4550 [145] SW [137] 4200,4140,4200,4140,1000,9000
  295. 4560 [137] 4540
  296. 4570 [143]************INSTRUCTIONS**********
  297. 4580 [143]
  298. 4590 [153][199](147)
  299. 4600 [153]"                FILTER":[153]
  300. 4610 [153]" THE FILTER MODULE CHECKS THE DISTANCE"
  301. 4620 [153]"BETWEEN OLD AND NEW  POINTS, AND"
  302. 4630 [153]"REJECTS NEW POINTS THAT EXCEED A SET"
  303. 4640 [153]"LIMIT.":[153]
  304. 4650 [153]" THIS MODULE IS USED TO ELIMINATE STRAY"
  305. 4660 [153]"VALUES THAT SOMETIMES ARISE FROM NOT"
  306. 4670 [153]"PRESSING ON THE TABLET HARD ENOUGH.":[153]
  307. 4680 [153]" YOU WILL NORMALLY NOT CALL THIS ROUTINE";
  308. 4690 [153]"FOR INPUT DIRECTLY. YOU SHOULD CALL"
  309. 4700 [153]"'SMOOTH' INSTEAD.":[153]
  310. 4710 [153]" THE FOLLOWING IS A SLOW SIMULATION OF"
  311. 4720 [153]"WHAT REALLY HAPPENS VERY RAPIDLY WITHIN"
  312. 4730 [153]"THE ASSEMBLY CODE.":[153]
  313. 4740 [153]:[153]:[153]"PRESS LEFT BUTTON TO CONTINUE"
  314. 4750 [141] 21900:[139] SW[178]0 [167] 4750
  315. 4760 [142]
  316. 4770 :
  317. 4780 [143]***********FILTER***************
  318. 4790 :
  319. 4800 [153][199](147):[153]"            KOALAPAD FILTER":[153]:[153]
  320. 4810 [153]" WHAT LIMIT DO YOU WANT TO SET?":[153]:[153]:[153]
  321. 4820 [153]" SLIDE YOUR FINGER HORIZONTALLY ON THE"
  322. 4830 [153]"TABLET UNTIL YOU GET A VALUE YOU WANT,"
  323. 4840 [153]"THEN CLICK THE LEFT BUTTON.":[153]
  324. 4850 [153]" TRY SETTING HIGH AND LOW VALUES, AND "
  325. 4860 [153]"SEE WHAT HAPPENS AS YOU MOVE QUICKLY OR"
  326. 4870 [153]"SLOWLY."
  327. 4880 [153]:[153]:[153]:[153]:[153]:[153]
  328. 4890 [153]" CLICK THE  LEFT BUTTON TO CONTINUE..."
  329. 4900 [153]"ONONONONONONONONONONONONONONONONON"
  330. 4910 [158] SM
  331. 4920 FV[178][194](SX)[171]8:[139] FV[179][178]1 [167] FV[178]1
  332. 4930 [153],"       ";FV;
  333. 4940 [129] BB[178]1 [164] 60:[130]
  334. 4950 [129]BB[178][185](1) [164]1 [169][171]1:[153]"CMD CMD";:[130]
  335. 4960 [141] 21900:[139] SW[178]0 [167] 4910
  336. 4970 [151] ER,FV
  337. 4980 [142]
  338. 4990 :
  339. 6000 [143] ********************************
  340. 6010 [143] *  KOALAPAD PAD LOCK (PADLOK)  *
  341. 6020 [143] ********************************
  342. 6030 [143]
  343. 6040 :
  344. 6050 [143] NORMALLY THE TABLET RETURNS TO THE UPPER LEFT CORNER VALUES WHEN YOU
  345. 6060 [143] * REMOVE YOUR FINGER. THIS ROUTINE LOCKS THE PAD TO THE LAST POINT   *
  346. 6070 [143] * WHERE PRESSURE WAS APPLIED. THE LOCKED VALUES ARE IN 49648 (X) AND *
  347. 6080 [143] * 49649 (Y). THE PAD LOCKS OUT THE FIRST VALUES IT READS IN FROM THE *
  348. 6090 [143] * PAD WHEN THE ROUTINE IS FIRST RUN. THESE MAY BE RESET BY POKING    *
  349. 6100 [143] * 49650 (MINX) AND 49651 (MINY).                                     *
  350. 6110 :
  351. 6120 [143]
  352. 6130 RX[178]49152:RY[178]49154                  :[143] RAW X AND Y
  353. 6140 LX[178]49163:LY[178]49164                  :[143] LOCKED X AND Y
  354. 6150 TX[178]49165:TY[178]49166                  :[143] MINIMUM X AND Y
  355. 6160 RP[178]49162                           :[143] RIGHT BUTTON
  356. 6170 PA[178]49343                           :[143] START OF PADLOCK ROUTINE
  357. 6180 [143]
  358. 6190 [143] PRINT TITLES ON SCREEN
  359. 6200 [143]
  360. 6210 [151] CS,7:[153][199](144):[151] CB,15
  361. 6220 [141] 6520
  362. 6230 [145] SW [137] 6240,1060,6240,1060,1060,9000
  363. 6240 [153][199](147):[153]:[153]"              KOALAPAD LOCK"
  364. 6250 [153]:[153]:[153]:[153]"           RAW X          RAW Y"
  365. 6260 [153]:[153]:[153]:[153]:[153]"          LOCKED X       LOCKED Y"
  366. 6270 [153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]:[153]
  367. 6280 [153]"TO EXIT, PRESS LEFT BUTTON"
  368. 6290 [143]
  369. 6300 [143] READ IN PAD DATA
  370. 6310 [143]
  371. 6320 [158] PA                             :[143] LOCK PAD DATA
  372. 6330 X[178][194](RX):Y[178][194](RY)              :[143] GET RAW X AND Y
  373. 6340 DX[178][194](LX):DY[178][194](LY)            :[143] GET LOCKED X AND Y
  374. 6350 V2[178][194](B2)                        :[143] READ RIGHT BUTTON
  375. 6360 [153] [199](19):[151] 214,7:[153]    :[143] ERASE LINE 7
  376. 6370 [153]"                                   "
  377. 6380 [153] [199](19):[151] 214,7:[153]    :[143] DISPLAY RAX X
  378. 6390 [153],"  ";X
  379. 6400 [153] [199](19):[151] 214,7:[153]    :[143] DISPLAY RAW Y
  380. 6410 [153],,"       ";Y
  381. 6420 [153] [199](19):[151] 214,12:[153]   :[143] ERASE LINE 12
  382. 6430 [153]"                                   "
  383. 6440 [153] [199](19):[151] 214,12:[153]   :[143] DISPLAY LOCKED X
  384. 6450 [153],"  ";DX
  385. 6460 [153] [199](19):[151] 214,12:[153]   :[143] DISPLAY LOCKED Y
  386. 6470 [153],,"       ";DY
  387. 6480 [141] 21900
  388. 6490 [145] SW [137] 1060,6190,1060,6190,1000,9000
  389. 6500 [203] [164] 6320:[143] READ IN MORE DATA
  390. 6510 :
  391. 6520 [143]***********INSTRUCTIONS*********
  392. 6530 [143]
  393. 6540 [153][199](147):[153]"              TABLET LOCK":[153]:[153]
  394. 6550 [153]" THIS MODULE REMEMBERS OLD X AND Y "
  395. 6560 [153]"VALUES WHENEVER YOU LIFT YOUR FINGER OR"
  396. 6570 [153]"STYLUS. IT LETS YOU OPERATE THE TABLET"
  397. 6580 [153]"WITH ONE HAND!!!":[153]
  398. 6590 [153]" LOCK IS AUTOMATICALLY CALLED BY SMOOTH,";
  399. 6600 [153]"BUT CAN BE CALLED INDEPENDENTLY. MOST"
  400. 6610 [153]"OF THE TIME YOU WILL CALL SMOOTH.":[153]
  401. 6620 [153]" WITHOUT LOCK THE CURSOR WILL RETURN TO"
  402. 6630 [153]"THE UPPER LEFT HAND CORNER." :[153]:[153]:[153]:[153]:[153]
  403. 6640 [153]:[153]:[153]:[153]"PRESS LEFT BUTTON TO CONTINUE"
  404. 6650 [141] 21900:[139] SW[178]0 [167]  6650
  405. 6660 [142]
  406. 6670 :
  407. 7000 [143]********************************
  408. 7005 [143]*  KOALAPAD SMOOTHING ROUTINE  *
  409. 7010 [143]********************************
  410. 7015 [143]
  411. 7020 :
  412. 7025 [143]* THIS ROUTINE APPLIES A PASCAL SMOOTHING FUNCTION TO THE TABLET.    *
  413. 7030 [143]* THE ROUTINE ASKS FOR THE LEVEL OF SMOOTHING DESIRED AND RETURNS    *
  414. 7035 [143]* SMOOTHED X,Y.  THE PROGRAM DISPLAYS THE X & Y VALUES, THE WEIGHTS, [144]
  415. 7040 [143]* THE PRODUCTS, THE TOTALS, AND THE SMOOTHED VALUES.                 *
  416. 7045 :
  417. 7050 [143] THIS BASIC PROGRAM IS A SLOW SIMULATION OF WHAT ACTUALLY HAPPENS
  418. 7055 [143] VERY RAPIDLY IN THE MACHINE CODE MODULE.
  419. 7060 :
  420. 7065 :
  421. 7070 [143]
  422. 7075 [143]  FIRST INITIALIZE ALL VALUES
  423. 7080 [143]
  424. 7085 SMOOTH[178]49340:[143] SMOOTH ROUTINE
  425. 7090 [151]  LO,0:[143] UNLOCK THE CURSOR
  426. 7095 [151] LE,6:[143] SET SMOOTHING AT LEVEL 6
  427. 7100 [129]I[178]0 [164] 6
  428. 7105 [158] SM
  429. 7110 PX(I)[178][194](FX):PY(I)[178][194](FY)
  430. 7115 [130] I
  431. 7120 SX[178]49196:SY[178]49197:[143] SMOOTHED VALUES
  432. 7125 LEVEL[178]49198:[143] SET LEVEL
  433. 7130 LOCKST[178]49199:[143] LOCK CURSOR
  434. 7135 [151] LO,0:[143] FREE CURSOR
  435. 7140 [151] CS,0:[151] CB,11:[153][199](159)
  436. 7145 [141] 7420
  437. 7150 [145] SW [137] 7155,1000,7155,1000,1000,9000
  438. 7155 [153][199](147):[151]214,20:[153]:[153]"PRESS LEFT BUTTON TO CHOOSE LEVEL."
  439. 7160 [153]:[153]"TO RESET LEVEL,HOLDWAIT RIGHT BUTTON."
  440. 7165 [153]"TO END,HOLDWAIT LEFT BUTTON."
  441. 7170 [153]"":[153]"                SMOOTH           "
  442. 7175 [153]:[153]:[153]
  443. 7180 [153]" LEVEL OF SMOOTHING (0-6) ";
  444. 7185 [151]LE,0
  445. 7190 [151] LO,1
  446. 7195 [158] PA
  447. 7200 LS[178][181]([194](FX)[173]38):[153]LS;:[129]BB[178]1[164]50:[130]
  448. 7205 [129] BB[178][185](0) [164] 27 [169][171]1:[153]"CMD CMD";:[130]
  449. 7210 [139] [194](LP)[178]1 [167] 7230
  450. 7215 [141] 21900
  451. 7220 [145] SW [137] 7230,7000,7230,7000,1000,9000
  452. 7225 [137]7195
  453. 7230 [153]LS;
  454. 7232 [153]:[153]:[153]
  455. 7233 [153][199](19):[151] 214,19:[153]:[153]"                                       "
  456. 7234 [153][199](19):[151] 214,7:[153]
  457. 7235 [151] LO,0
  458. 7240 [151] LE,LS
  459. 7245 [129] BB[178]1 [164] 10:[153]"                                     ":[130]
  460. 7250 [153]"ONONONONONONONONONONON"
  461. 7255 [158] SM
  462. 7260 XX[178][194](SX):YY[178][194](SY)
  463. 7265 F2[178]0:F1[178]0
  464. 7270 [129]I[178]6 [164] 1 [169] [171]1
  465. 7275 PX(I)[178]PX(I[171]1):PY(I)[178]PY(I[171]1)
  466. 7280 [130] I
  467. 7285 PX(0)[178][194](FX):PY(0)[178][194](FY)
  468. 7290 :
  469. 7295 [143] UPDATE NEW SMOOTHING VALUES
  470. 7300 [129]I[178] 0 [164] LS
  471. 7305 [158] PE
  472. 7310 [139] [194](LP)[178]1 [167] F1[178]1
  473. 7315 [139] [194](B2)[178]1 [167] F2[178]1
  474. 7320 [161] QQ$:[139] QQ$[178]"" [167] 7335
  475. 7325 [139] [198](QQ$)[178]136 [167] 9000
  476. 7335 [153]" CURRENT DATA";I;:[129]J[178]15[164] 35:[153]" ";:[130] J
  477. 7340 [153][163]15);:[129]J[178]1 [164] 35:[153]"CMD";:[130] J
  478. 7345 [153],,PX(I),PY(I)
  479. 7350 [130] I
  480. 7355 :
  481. 7360 [153]"                               "
  482. 7365 [153]"                               "
  483. 7370 [153][163]15);:[129]J[178]15 [164] 35:[153]" ";:[130]
  484. 7375 [153][163]15);:[129]J[178]1 [164] 35:[153]"CMD";:[130]
  485. 7380 [153]"SMOOTHED DATA",XX,YY
  486. 7385 [139] [194](LP)[178]1 [167] F1[178]1
  487. 7390 [139] [194](RP)[178]1 [167] F2[178]1
  488. 7395 [139] F1[178]1 [167] 1060
  489. 7400 [139] F2[178]1 [167] [151] 214,2:[137] 7175
  490. 7405 [129] J[178]1 [164] LS[170]4:[153]"ON";:[130]J
  491. 7410 [137] 7255
  492. 7415 [128]
  493. 7420 [143]************INSTRUCTIONS*********
  494. 7425 [143]
  495. 7430 [153][199](147):[153]"               SMOOTH":[153]:[153]
  496. 7435 [153]" THIS 'SMOOTHING TOOL' KEEPS SEVERAL "
  497. 7440 [153]"RECENT VALUES OF X AND Y DATA, AND "
  498. 7445 [153]"COMPUTES A 'WEIGHTED MOVING AVERAGE.'":[153]
  499. 7450 [153]" THIS IS THE MAIN ROUTINE THAT YOU WILL"
  500. 7455 [153]"CALL ALL THE TIME TO GET DATA FROM THE"
  501. 7460 [153]"TABLET.":[153]
  502. 7465 [153]" SMOOTHING IS USED IN HI-RESOLUTION"
  503. 7470 [153]"DRAWING, AND FOR MOVING A CURSOR.":[153]
  504. 7475 [153]" IN THE FOLLOWING DEMO, PICK A 'LEVEL'"
  505. 7480 [153]"OF SMOOTHING (HOW MANY RECENT VALUES TO"
  506. 7485 [153]"KEEP), WATCH NEW VALUES MOVE THROUGH"
  507. 7490 [153]"THE LIST,  AND NOTE THE EFFECT ON THE"
  508. 7495 [153]"FINAL OUTPUT.":[153]
  509. 7500 [153]:[153]:[153]"PRESS LEFT BUTTON TO CONTINUE"
  510. 7505 [141] 21900:[139] SW[178]0 [167] 7505
  511. 7510 [142]
  512. 7515 :
  513. 8000 [151] CS,1:[153][199](152):[151] CB,7
  514. 8005 [143]********************************
  515. 8010 [143]*    TABLET SCALING ROUTINE    *
  516. 8015 [143]********************************
  517. 8020 [143]
  518. 8025 :
  519. 8030 [143]* THIS ROUTINE WILL SCALE THE TABLET UP TO A RANGE OF 0-510. FIRST    *
  520. 8035 [143]* YOU MUST SPECIFY THE ACTIVE MINIMUM AND MAXIMUM POINTS. THEN YOU    *
  521. 8040 [143]* INPUT THE DESIRED START AND FINISH VALUES FOR THE TABLET. THE PAD   *
  522. 8045 [143]* WILL THEN OUTPUT NEWX, NEWY, NEWXHI, AND NEWYHI.                    *
  523. 8050 :
  524. 8055 [143]
  525. 8060 [143]  FIRST INITIALIZE ALL VALUES
  526. 8065 [151] LO,0:[151] LE,0
  527. 8070 [143]
  528. 8075 [141] 8490
  529. 8080 [145] SW [137] 8085,1000,8085,1000,1000,9000
  530. 8085 [153][199](147):[153]"                SCALE          "
  531. 8090 [153]:[153]
  532. 8095 [153]"FIRST SPECIFY 'ACTIVE' PAD AREA":[153]
  533. 8100 [153]"MINIMUM X VALUE (1-254) :    CMDCMDCMDCMD";:[141] 30000:S3[178]RN
  534. 8105 [139] S3[178]0 [167] [153]"ON":[137]8100
  535. 8110 [139] S3[177]254 [167] [153]"ON":[137] 8100
  536. 8115 [153]
  537. 8120 [153]"MINIMUM Y VALUE (1-254) :    CMDCMDCMDCMD";:[141] 30000:S4[178]RN
  538. 8125 [139] S4[178]0 [167] [153]"ON":[137] 8120
  539. 8130 [139] S4[177]254 [167] [153]"ON":[137] 8120
  540. 8135 [153]:[153]:[153]"MAX X,Y MUST BE LARGER THAN MIN X,Y":[153]
  541. 8140 [153]"MAXIMUM X VALUE (2-255) :    CMDCMDCMDCMD";:[141] 30000:L1[178]RN
  542. 8145 [139] L1[179][178]S3 [167][153]"ON":[137] 8140
  543. 8150 [139] L1[177]255 [167][153]"ON":[137] 8140
  544. 8155 [153]
  545. 8160 [153]"MAXIMUM Y VALUE (2-255) :    CMDCMDCMDCMD";:[141] 30000:L2[178]RN
  546. 8165 [139] L2[179][178]S4 [167] [153]"ON":[137] 8160
  547. 8170 [139] L2[177]255 [167] [153]"ON":[137] 8160
  548. 8175 [153]:[153]
  549. 8180 [153]"SPECIFY SCALING START AND FINISH POINTS"
  550. 8185 [153]
  551. 8190 [153]"X STARTING VALUE (0-509) :    CMDCMDCMDCMD";:[141]30000:XA[178]RN
  552. 8195 [139] XA[177]509 [167] [153]"ON":[137] 8190
  553. 8200 [153]
  554. 8205 [153]"Y STARTING VALUE (0-509) :    CMDCMDCMDCMD";:[141] 30000:YA[178]RN
  555. 8210 [139] YA[177]509 [167] [153]"ON":[137] 8205
  556. 8215 [153]:[153]:[153]"FINISH X,Y MUST EXCEED START X,Y.":[153]
  557. 8220 [153]"X FINISH VALUE (1-510) :    CMDCMDCMDCMD";:[141] 30000:XB[178]RN
  558. 8225 [139] XB[179][178]XA [167] [153]"ON":[137] 8220
  559. 8230 [139] XB[177]510 [167] [153]"ON":[137] 8220
  560. 8235 [153]
  561. 8240 [153]"Y FINISH VALUE (1-510) :    CMDCMDCMDCMD";:[141] 30000:YB[178]RN
  562. 8245 [139] YB[179][178]YA [167] [153]"ON":[137] 8240
  563. 8250 [139] YB[177]510 [167] [153]"ON":[137] 8240
  564. 8255 [143]
  565. 8260 :
  566. 8265 [143]  NOW COMPUTE AND STORE THESE VALUES
  567. 8270 [143]
  568. 8275 [151] S1,S3:[151] S2,S4
  569. 8280 [151] M1,L1:[151] M2,L2
  570. 8285 [151] H1,0:[151] H2,0
  571. 8290 [151] H3,0:[151] H4,0
  572. 8295 [139] XA[177]255 [167] [151] H1,1:XA[178]XA[171]256
  573. 8300 [151] XS,XA
  574. 8305 [139] YA[177]255 [167] [151] H2,1:YA[178]YA[171]256
  575. 8310 [151] YS,YA
  576. 8315 [139] XB[177]255 [167] [151] H3,1:XB[178]XB[171]256
  577. 8320 [151] XF,XB
  578. 8325 [139] YB[177]255 [167] [151] H4,1:YB[178]YB[171]256
  579. 8330 [151] YF,YB
  580. 8335 [143]
  581. 8340 [143]  NOW SET ALL PREVIOUS VALUES TO ZERO
  582. 8345 [143]
  583. 8350 [151] XN,0:[151] XH,0
  584. 8355 [151] YN,0:[151] YH,0
  585. 8360 [143]
  586. 8365 [143] NOW SET UP THE DISPLAY SCREEN
  587. 8370 [143]
  588. 8375 [153][199](147):[153]"                 SCALE    "
  589. 8380 [153]:[153]:[153]:[153]
  590. 8385 [153]"          NEW X          NEW Y"
  591. 8390 [153]:[153]:[153]:[153]:[153]:[153]:[153]
  592. 8395 [153]:[153]:[153]:[153]:[153]:[153]
  593. 8400 [153]"PRESS RIGHT BUTTON TO RESTART"
  594. 8405 [153]:[153]"PRESS LEFT BUTTON TO QUIT"
  595. 8410 [143]
  596. 8415 [143] NOW RUN ROUTINE AND CALCULATE AND DISPLAY VALUES
  597. 8420 [143]
  598. 8425 [158] SM
  599. 8430 [158] SC
  600. 8435 NX[178][194](XN):NY[178][194](YN)
  601. 8440 HX[178][194](XH):HY[178][194](YH)
  602. 8445 DX[178]256[172]HX[170]NX
  603. 8450 DY[178]256[172]HY[170]NY
  604. 8455 [153][199](19):[151] 214,8:[153]
  605. 8460 [153]"                                   CMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";
  606. 8465 [153][163]10);DX;[163]25);DY
  607. 8470 [141] 21900
  608. 8475 [145] SW [137] 1000,8000,1000,8000,1000,9000
  609. 8480 [137] 8425
  610. 8485 :
  611. 8490 [143]*********INSTRUCTIONS***********
  612. 8495 [143]
  613. 8500 [153][199](147):[153]"            TABLET SCALING ":[153]:[153]
  614. 8505 [153]" SCALING IS A GENERAL PURPOSE ROUTINE"
  615. 8510 [153]"WHICH TAKES X AND Y DATA FROM THE PAD"
  616. 8515 [153]"AND GIVES IT A NEW RANGE.":[153]
  617. 8520 [153]"FIRST YOU MUST SPECIFY THE MINIMUM AND"
  618. 8525 [153]"MAXIMUM VALUES OF YOUR PAD. THEN YOU"
  619. 8530 [153]"SPECIFY THE NEW RANGE (FROM 0-510) FOR"
  620. 8535 [153]"X AND Y. THE OUTPUT OF THIS ROUTINE "
  621. 8540 [153]"WILL BE X AND Y WITH THEIR NEW RANGE.":[153]
  622. 8545 [153]" YOU MUST CALL SMOOTHING FIRST IN ORDER"
  623. 8550 [153]"TO GET YOUR UNSCALED X AND Y DATA.":[153]
  624. 8555 [153]" THIS ROUTINE IS VERY USEFUL FOR "
  625. 8560 [153]"SCREEN CURSORS AND CREATING DISTINCT"
  626. 8565 [153]"TABLET AREAS.":[153]:[153]
  627. 8570 [153]"  PRESS LEFT BUTTON TO CONTINUE"
  628. 8575 [141] 21900:[139]SW[178]0 [167] 8575
  629. 8580 [142]
  630. 8585 :
  631. 9000 [143]************* LOAD MAIN MENU*************
  632. 9005 [156]
  633. 9010 [159] 2,8,2,"0:SPRITE.UPARROW,S,R":[143] CHECK DISK
  634. 9015 [160]2
  635. 9020 [159] 15,8,15
  636. 9025 [132]15,A$,B$,C$,D$:[143] READ ERROR
  637. 9030 [139] [197](A$)[178]0 [167] 9080:[143] NO ERROR
  638. 9035 [153]"LOAD":[153]:[153]:[153]:[153]:[153]:[153]"            ";B$
  639. 9040 [129]I[178]1 [164]1000:[130]I:[143] PRINT ERROR
  640. 9050 [137]1000
  641. 9080 [156]
  642. 9085 [153]"LOAD":[151]214,8:[153]:[153]"         LOADING MAIN MENU..."
  643. 9090 [147]"MENU",8
  644. 21000 :
  645. 21200 [143] ************SET UPS************
  646. 21202 Z5[178]45:Z6[178]46:Z7[178]47:Z8[178]48:Z9[178]49:Z0[178]50:[143] ZERO PAGE BASIC POINTERS
  647. 21204 CBRDER[178]53280:CSCREEN[178]53281
  648. 21205 [143] ASSEMBLY ROUTINE JUMP ADDRESS NAMES
  649. 21208 TABRAW[178]49328:DEBOUNCE[178]49331:FILTER[178]49334:PERFECT[178]49337
  650. 21210 SMOOTH[178]49340:PADLOCK[178]49343:SCALE[178]49346:TEXTCR[178]49349:SPRITE[178]49352
  651. 21215 PLTDOT[178]49355:SETSCL[178]49358:TURNUN[178]49361:KLRCOL[178]49364:TRNUFF[178]49367
  652. 21220 LINE[178]49382:BOX[178]49385:RDIUS[178]49388:CIRCLE[178]49391
  653. 21222 KOALAPICTURE[178]49394
  654. 21223 :
  655. 21225 [143] VARIABLE NAMES
  656. 21227 RX[178]49152:RY[178]49154
  657. 21230 B1[178]49156:B2[178]49157:LDBOUNCE[178]49159:RDBOUNCE[178]49160:LPRESS[178]49161:RPRESS[178]49162
  658. 21231 LX[178]49163:LY[178]49164:TX[178]49165:TY[178]49166
  659. 21232 FX[178]49168:FY[178]49169:UX[178]49172:UY[178]49173:ERRUR[178]49174:M1[178]49175:M2[178]49176
  660. 21235 SX[178]49196:SY[178]49197:LEVEL[178]49198:LOCKST[178]49199
  661. 21238 XH[178]49186:S1[178]49187:S2[178]49188:YH[178]49190
  662. 21240 XS[178]49177:YS[178]49179:XF[178]49181:YF[178]49183:XNW[178]49185:YNW[178]49189
  663. 21245 H1[178]49178:H2[178]49180:H3[178]49182:H4[178]49184
  664. 21250 BANKA[178]49191:SSTART[178]49194
  665. 21255 SFLAG[178]49200:SNABLE[178]53269:SKOLR[178]53287:XLOSP[178]53248:XISP[178]53264:YLOSP[178]53249
  666. 21260 MCM[178]49205:COLR[178]49206:XR[178]49208
  667. 21265 X1[178]49209:X2[178]49210:Y1[178]49211:Y2[178]49212:RADIUS[178]49213
  668. 21266 T3[178]49239
  669. 21270 [142]
  670. 21280 :
  671. 21900 [143]****CHECK SWITCHES**************
  672. 21905 SW[178]0
  673. 21910 [158] PE
  674. 21920 [139] [194](LP)[178]1 [167] SW[178]1:[142]
  675. 21930 [139] [194](RP)[178]1 [167] SW[178]2:[142]
  676. 21931 [139] [194](198)[178]0 [167] [142]
  677. 21935 :
  678. 21938 [129] I9[178]1[164] [194](198)
  679. 21940 [161] QQ$
  680. 21942 [130] I9
  681. 21949 :
  682. 21965 [139] QQ$[178][199](136) [167] SW[178]6:[143] CHECK F7
  683. 21966 [151] 198,0
  684. 21969 :
  685. 21970 [142]
  686. 21980 :
  687. 29000 [143] 3-DIGIT KEYBOARD LOCKOUT ROUTINE.(NUMBERS,DELETE,R/S,RETURN ONLY)
  688. 30000 QN[178]1:TN$[178]""
  689. 30005 [161] QQ$:[139]QQ$[178]"" [167]  30005
  690. 30010 AV[178][198](QQ$):[139]AV[178]13[167]30200
  691. 30011 [139](AV[178]20)[167]30100
  692. 30012 [139]AV[178]136 [167] 9000
  693. 30015 [139](AV[179]48)[176](AV[177]57)[167]30005
  694. 30016 [139] QN[178]4 [167] 30005
  695. 30020 NU$[178][199](AV):QN[178]QN[170]1
  696. 30025 TN$[178]TN$[170]NU$
  697. 30030 [153][199](AV);
  698. 30040 [137]30005
  699. 30100 [139] QN[178]1 [167] 30005
  700. 30110 QN[178]QN[171]1:TN$[178][200](TN$,QN[171]1)
  701. 30120 [137]30030
  702. 30200 RN[178][197](TN$)
  703. 30210 [142]
  704. 40000 [159]15,8,15:[152]15,"S0:BASICS":[148]"BASICS",8
  705.